//fork函数测试
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<sys/types.h>
#include <unistd.h>

int g_val = 99;

//父子进程不能共享全局变量，地址一样

//读时共享，写时复制




int main(int argc,char* argv[])
{
	//创建子进程
	//pid_t fork(void);
	pid_t pid = fork();
	if(pid<0)//fork失败的情况
	{
		perror("fork error");
		return -1;
	}
	else if(pid > 0)
	{
		printf("father,pid = [%d],ppid = [%d]\n",getpid(),getppid());
		g_val++;
	}
	else if(pid == 0)
	{	
		sleep(1);
		printf("child,pid = [%d],ppid = [%d]\n",getpid(),getppid());
		printf("child:g_val=[%d]\n",g_val);
	}
	return 0;
}
